package com.zt.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zt.entity.AdminLog;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;

/**
 * 管理员操作日志Mapper接口
 * @author 周明震
 * @date 2025/7/21
 */
@Mapper
public interface AdminLogMapper extends BaseMapper<AdminLog> {
    
    /**
     * 分页查询操作日志
     */
    IPage<AdminLog> selectLogPage(Page<AdminLog> page, @Param("params") Map<String, Object> params);
    
    /**
     * 根据条件查询日志列表
     */
    List<AdminLog> selectLogList(@Param("params") Map<String, Object> params);
    
    /**
     * 统计操作日志数量
     */
    Map<String, Object> selectLogStats(@Param("startTime") LocalDateTime startTime, 
                                       @Param("endTime") LocalDateTime endTime);
    
    /**
     * 清理过期日志
     */
    int deleteExpiredLogs(@Param("beforeTime") LocalDateTime beforeTime);

    /**
     * 清空所有日志
     */
    void clearAllLogs();
}
